1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.collect.testing.google;
18
19 import static com.google.common.collect.testing.features.CollectionSize.ZERO;
20 import static com.google.common.collect.testing.features.MapFeature.SUPPORTS_PUT;
21
22 import com.google.common.annotations.GwtCompatible;
23 import com.google.common.collect.testing.Helpers;
24 import com.google.common.collect.testing.features.CollectionSize;
25 import com.google.common.collect.testing.features.MapFeature;
26
27
28
29
30 @GwtCompatible
31 public class BiMapPutTester<K, V> extends AbstractBiMapTester<K, V> {
32
33 @SuppressWarnings("unchecked")
34 @MapFeature.Require(SUPPORTS_PUT)
35 @CollectionSize.Require(ZERO)
36 public void testPutWithSameValueFails() {
37 K k0 = samples.e0.getKey();
38 K k1 = samples.e1.getKey();
39 V v0 = samples.e0.getValue();
40 getMap().put(k0, v0);
41 try {
42 getMap().put(k1, v0);
43 fail("Expected IllegalArgumentException");
44 } catch (IllegalArgumentException expected) {
45
46 }
47
48 expectAdded(samples.e0);
49 }
50
51 @SuppressWarnings("unchecked")
52 @MapFeature.Require(SUPPORTS_PUT)
53 @CollectionSize.Require(ZERO)
54 public void testPutPresentKeyDifferentValue() {
55 K k0 = samples.e0.getKey();
56 V v0 = samples.e0.getValue();
57 V v1 = samples.e1.getValue();
58 getMap().put(k0, v0);
59 getMap().put(k0, v1);
60
61
62 expectContents(Helpers.mapEntry(k0, v1));
63 }
64
65 @SuppressWarnings("unchecked")
66 @MapFeature.Require(SUPPORTS_PUT)
67 @CollectionSize.Require(ZERO)
68 public void putDistinctKeysDistinctValues() {
69 getMap().put(samples.e0.getKey(), samples.e0.getValue());
70 getMap().put(samples.e1.getKey(), samples.e1.getValue());
71 expectAdded(samples.e0, samples.e1);
72 }
73
74 @SuppressWarnings("unchecked")
75 @MapFeature.Require(SUPPORTS_PUT)
76 @CollectionSize.Require(ZERO)
77 public void testForcePutOverwritesOldValueEntry() {
78 K k0 = samples.e0.getKey();
79 K k1 = samples.e1.getKey();
80 V v0 = samples.e0.getValue();
81 getMap().put(k0, v0);
82 getMap().forcePut(k1, v0);
83
84 expectAdded(Helpers.mapEntry(k1, v0));
85 }
86
87 @SuppressWarnings("unchecked")
88 @MapFeature.Require(SUPPORTS_PUT)
89 @CollectionSize.Require(ZERO)
90 public void testInversePut() {
91 K k0 = samples.e0.getKey();
92 V v0 = samples.e0.getValue();
93 K k1 = samples.e1.getKey();
94 V v1 = samples.e1.getValue();
95 getMap().put(k0, v0);
96 getMap().inverse().put(v1, k1);
97 expectAdded(samples.e0, samples.e1);
98 }
99 }